home *** CD-ROM | disk | FTP | other *** search
/ The Best of MacTutor - S…e Code for Volumes 1 to 5 / The Best of MacTutor - Source Code for Volume 1-5 (Wayzata Technology)(6031)(1990).bin / Source Code / #02 (Apr85-Jul85) / modula 2 / modula Vol. 1 #8 / VolumeTracer.MOD < prev   
Text File  |  1985-04-13  |  995b  |  45 lines

  1. IMPLEMENTATION MODULE VolumeTracer;
  2.  
  3.   TYPE
  4.     QHdrPtr   = POINTER TO QHdr;
  5.     QHdr        = RECORD
  6.                         qFlags : INTEGER;    (* queue flags *)
  7.                   qHead  : QElemPtr;  (* first queue entry *)
  8.                   qTail   : QElemPtr;  (* last  queue entry *)
  9.                END;
  10.  
  11.   VAR
  12.      VCBQHdr  [0356h] : QHdr;    (* VCB queue header *)
  13.  
  14.   PROCEDURE VolumesOnLine(): CARDINAL;
  15.     VAR
  16.       ptr : QElemPtr;
  17.       count : CARDINAL;
  18.   BEGIN
  19.     ptr := VCBQHdr.qHead;
  20.     count := 0;
  21.     WHILE ptr # NIL DO
  22.       INC(count);
  23.       ptr := ptr^.qLink;
  24.     END;
  25.     RETURN count;
  26.   END VolumesOnLine;
  27.  
  28.   PROCEDURE GetVolumeInfo(VAR volume : VCB; whichVol : CARDINAL);
  29.     VAR
  30.       ptr : QElemPtr;
  31.       count : CARDINAL;
  32.   BEGIN
  33.     ptr := VCBQHdr.qHead;
  34.     count := 0;
  35.     WHILE (ptr # NIL) AND (count # whichVol) DO
  36.       INC(count);
  37.       IF count = whichVol THEN
  38.           volume := ptr^;
  39.       END;
  40.       ptr := ptr^.qLink;
  41.     END;
  42.   END GetVolumeInfo;
  43.  
  44. END VolumeTracer.
  45.